package com.jike.mahjong.common.util;

import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;

public class PropertyUtil {

	//属性文件的路径
//	static String profilepath = PropertyUtil.class.getClassLoader().getResource("setting.properties").getPath();
	static String profilepath ="/data/setting.properties";
//	static String profilepath ="setting.properties";
	/**
	 * 采用静态方法
	 */
	private static Properties props = new Properties();

	static {
		try {
//			props.load(new FileInputStream(new File(profilepath)));
			props.load(new InputStreamReader(PropertyUtil.class.getClassLoader().getResourceAsStream("setting.properties")));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			System.exit(-1);
		} catch (IOException e) {
			System.exit(-1);
		}
	}


	public static void writeProperties(String keyname, String keyvalue) {
		try {
			// 调用 Hashtable 的方法 put，使用 getProperty 方法提供并行性。
			// 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
			OutputStream fos = new FileOutputStream(profilepath);
			props.setProperty(keyname, keyvalue);
			// 以适合使用 load 方法加载到 Properties 表中的格式，
			// 将此 Properties 表中的属性列表（键和元素对）写入输出流
			props.store(fos, keyvalue);
			fos.close();
			fos.flush();
		} catch (IOException e) {
			System.err.println("属性文件更新错误");
		}
	}

	public static void updateProperties(String keyname, String keyvalue) {
		try {
			props.load(new FileInputStream(profilepath));

			OutputStream fos = new FileOutputStream(profilepath);
			props.setProperty(keyname, keyvalue);
			// 以适合使用 load 方法加载到 Properties 表中的格式，
			// 将此 Properties 表中的属性列表（键和元素对）写入输出流
			props.store(fos, keyvalue);
			fos.close();
			fos.flush();
		} catch (IOException e) {
			System.err.println("属性文件更新错误");
		}
	}

	public static String getPropertyValue(String key) {
		String value = "";
		try {

			value = props.getProperty(key).trim();
		} catch (Exception e) {

		}
		return value;
	}

	public static void main(String[] args) throws UnsupportedEncodingException {

        writeProperties("content","你好");
		writeProperties("frequency","2");
//		updateProperties("frequency","11");
		String value= props.getProperty("content");
		int frequency=Integer.valueOf(props.getProperty("frequency"));

		System.out.println("操作完成"+value+"----"+frequency+"----");
	}


}
